package com.uxwine.alarm.mon;

import com.uxwine.alarm.db.TBAlram;

import android.content.ContentUris;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.content.res.Resources;
import android.media.RingtoneManager;
import android.net.Uri;


/**
 * <pre>
 * 1.管理包内的铃声
 * 2.管理sd卡上的铃声 、
 * 3.管理系统默认铃声
 * 
 * </pre>
 *
 * @author zhangzhongming
 */
public class RingManager
{
	public static final Uri RING_URI = Uri.parse("conent://nny.alarm/ring");
	
	public static Uri getRingUri(int id)
	{
		return ContentUris.withAppendedId(RING_URI, id);
	}
	
	public static Uri getDefaultRing()
	{
		return getRingUri(0);
	}
	
	public static Uri getSystemRing()
	{
		return RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
	}
	
	public static int getRingId(Uri uri)
	{
		String segment = uri.getPathSegments().get(1);
		return Integer.parseInt(segment);
	}
	
	public static int getRingRawId(Context ctx, int id)
	{
		final Resources res = ctx.getResources();
		return getRingRawId(ctx, res, id);	
	}
	
	public static int getRingRawId(Context ctx, final Resources res, int id)
	{
		return res.getIdentifier("ring_" + id, "raw", ctx.getPackageName());		
	}
	
	public static int getRingRawId(Context ctx, Uri uri)
	{
		return getRingRawId(ctx, getRingId(uri));
	}
	
	public static AssetFileDescriptor getRingRaw(Context ctx, Uri uri)
	{
		final Resources res = ctx.getResources();
		final int id = getRingId(uri);
		final int resId = res.getIdentifier("ring_" + id, "raw", ctx.getPackageName());	
		return res.openRawResourceFd(resId);
	}
}
